$(document).ready(function() {
	myAjaxRules = new MyAjaxRules();
});

var tamOriginal = window.innerWidth;
window.addEventListener('load', ajustarTexto, false);
window.addEventListener('load', cargarSesion, false);
window.addEventListener('load', buscador, false);
window.onresize = ajustarTexto;

window.addEventListener('load', init, false);

function cargarSesion() {
	$.ajax({
		url : "../php/test.php",
		cache : false,
		success : mostrarUsuario
	});
}

function mostrarUsuario(html) {
	var div = document.getElementById("lista2");
	var lista = div.getElementsByTagName("li");
	var cantidad = lista.length;
	var texto = document.createTextNode('Bienvenido ' + html);
	lista[cantidad - 1].appendChild(texto);

}

function ajustarTexto() {
	var tamActual = window.innerWidth;
	var proporcion = (tamActual / tamOriginal) * 100;
	document.body.style.fontSize = proporcion + "%";
}

function buscador() {

	var search = document.getElementById("search");
	var inputs = document.getElementById("inputs");
	search.onclick = function() {
		if (hasClass(inputs, "inputs_no_visible")) {
			toggleClass(inputs, "inputs_no_visible", "inputs_visible");
			var add = document.getElementById('add').style.visibility = 'hidden';
		} else {
			toggleClass(inputs, "inputs_visible", "inputs_no_visible");
			var add = document.getElementById('add').style.visibility = 'visible';
		}
	}
}

function init() {

	myAjaxRules.ejecutarAJAX({
		method : "GET",
		url : "../php/getCategoria.php",
		funcionRespuesta : cargarCategorias
	});

}

function cargarCategorias(datosBD) {

	var datos = JSON.parse(datosBD);

	listaCat = new modelo.ListaCategorias();

	for (var i = 0; i < datos.length; i++) {
		var categoria = new modelo.Categoria(datos[i].idCategoria, datos[i].nombreCategoria);
		listaCat.addCategoria(categoria);

	}

	var divIndice = document.getElementById("indiceGeneral");

	var html = "";

	for (var i = 0; i < listaCat.lista.length; i++) {
		var elemento = listaCat.lista[i];
		html += '<div id="cat' + elemento.idCategoria + '">';
		html += '<div id="' + elemento.nombreCategoria + '" class="divClick cat_vacia">';
		html += '<li  id="' + elemento.idCategoria + '" class="categoria">';
		html += elemento.nombreCategoria;
		html += '</li>'
		html += '</div>';
		html += '<div id= "contenedorSub' + elemento.idCategoria + '" class= "subcategorias visible" >'
		html += '</div>';
		html += '</div>';
	}

	divIndice.innerHTML = html;
	cargarSubcategorias();

	for (i in listaCat.lista) {
		var elemento = listaCat.lista[i];
		mostrarDatosSubcategorias(elemento, elemento.idCategoria);
	}
}

function cargarSubcategorias() {

	var categorias = document.getElementsByClassName('divClick');

	for (var i = 0; i < categorias.length; i++) {
		categorias[i].onclick = function(event) {
			var identificador = this.firstChild.id;
			var objeto = {
				idCategoria : identificador,
				idFuncion : 1
			}
			var categoria = listaCat.getCategoria(identificador);
			if (categoria.subcategorias.length == 0) {

				//ejecutarAjax("../php/getSubcategoria.php", cargarDatosSubcategorias, objeto, identificador);
				myAjaxRules.ejecutarAJAX({
					method : "GET",
					url : "../php/getSubcategoria.php",
					funcionRespuesta : cargarDatosSubcategorias,
					JSObject : objeto,
					datosCallback : objeto,
					palabraBloqueo : "cat",
					selectorThis : event.target,
					//descripcion: "Recuperar artículos de la categoría '" + nombre + "'",
					autoCierreAlertas : false,
					ajaxTimeout : 7000,
					reglasBloqueo : [[

					/*,
					 {
					 permitir: false,
					 selectorBloqueo: "[data-categoria='"+ id +"'] > .categoria",
					 regExp:/pepe/
					 }*/
					]]
				});
			}else{
				cargarDatosSubcategorias(null, objeto);
			}
		}
	}
}

function cargarDatosSubcategorias(datosBBDD, identificador) {
	var categoria = listaCat.getCategoria(identificador.idCategoria);
	var divSub = document.getElementById('contenedorSub' + identificador.idCategoria);
	var divCat = document.getElementById(categoria.nombreCategoria);

	toggleClass(divCat, "cat_vacia", "cat_no_vacia");
	divCat.onclick = function(event) {
		if (hasClass(divSub, "visible")) {
			toggleClass(divSub, "visible", "no_visible");
			toggleClass(divCat, "cat_no_vacia", "cat_vacia");
		} else {
			toggleClass(divSub, "no_visible", "visible");
			toggleClass(divCat, "cat_vacia", "cat_no_vacia");
		}
	}
	if(datosBBDD){
		llenarObjeto(datosBBDD, identificador);
	}else{
		mostrarDatosSubcategorias(categoria, identificador.idCategoria);
	}
	
}

function llenarObjeto(datosBBDD, identificador) {
	var categoria = listaCat.getCategoria(identificador.idCategoria);
	var datos = JSON.parse(datosBBDD);

	for (var i = 0; i < datos.length; i++) {
		var subcategoria = new modelo.Subcategoria(datos[i].idSubcategoria, datos[i].nombreSubcategoria, datos[i].idCategoria);
		categoria.addSubcategoria(subcategoria);
	}
	if (identificador.idFuncion == 1) {
		mostrarDatosSubcategorias(categoria, identificador.idCategoria);
	} else {
		buscarSubcategoria(identificador.idCategoria);
	}

}

function mostrarDatosSubcategorias(categoria, identificador) {

	var divCat = document.getElementById('cat' + identificador);

	var html = "";

	var div2 = document.getElementById('contenedorSub' + identificador);

	html += '<ul id="listaSub">';
	for (var i = 0; i < categoria.subcategorias.length; i++) {
		var subcategoria = categoria.subcategorias[i];
		html += '<li id="subcat' + subcategoria.idSubcategoria + '">';
		html += subcategoria.nombreSubcategoria;
		html += '</li>';
	}

	html += '</ul>';

	div2.innerHTML = html;

}

/* PARA FIJAR LA LISTA
 $(document).scroll(function() {

 var useFixedSidebar = $(document).scrollTop() >= myThresholdValue;
 $('.my-sidebar-items').toggleClass('fixed', useFixedSidebar);

 });*/
